
Optimizing HTTP downloads in Java through conditional GET and compressed streams 

http://www.oreillynet.com/pub/wlg/5216

HTTP POST - 

URL url = new URL(BASE_URL);
      URLConnection con = url.openConnection();
       // inform the connection that we will send output and accept input
      con.setDoInput(true);
      con.setDoOutput(true);

     // Don't use a cached version of URL connection.
     con.setUseCaches (false);
     con.setDefaultUseCaches (false);
     con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
     // define a new PrintWriter on the output stream
     PrintWriter outWriter = new PrintWriter(con.getOutputStream());

     // send data to the servlet
     outWriter.print("htmlText="+inputHtml);
     outWriter.close();

     InputStream input = con.getInputStream();

http://technology.amis.nl/blog/?p=1107
http://www.marcellosendos.ch/booking/documentation/chapter2.html